package br.com.agregador.entity;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.List;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.FetchType;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.OneToMany;
import javax.persistence.PrimaryKeyJoinColumn;

@Entity
@PrimaryKeyJoinColumn(name="usuario_id")
public class Parceiro extends Usuario implements Serializable{

	private static final long serialVersionUID = 1L;
	
	@Column(nullable=false,columnDefinition="varchar(50)")
	private String nomeSite;
	
	@Column(nullable=false,columnDefinition="varchar(100)")
	private String urlSite;
	
	@Column(nullable=false,columnDefinition="varchar(100)")
	private String urlXML;
	
	@Column(nullable=false,columnDefinition="varchar(15)")
	private String telefone;
	
	@Column(nullable=false,columnDefinition="varchar(15)")
	private String celular;
	
	@Column(nullable=false,columnDefinition="varchar(14)")
	private String cpf;
	
	@Column(nullable=false,columnDefinition="varchar(18)")
	private String cnpj;
	
	@OneToMany(mappedBy="parceiro", fetch=FetchType.LAZY, targetEntity=Oferta.class)
	private List<Oferta> ofertas = new ArrayList<Oferta>();	
	
	@ManyToOne(fetch=FetchType.LAZY, targetEntity=Cidade.class)
	@JoinColumn(name="cidade_id",referencedColumnName="id",nullable=false,insertable=true,updatable=true)
	private Cidade cidade;
	
	@OneToMany(mappedBy="parceiro", fetch=FetchType.LAZY, targetEntity=Pagamento.class)
	private List<Pagamento> pagamentos = new ArrayList<Pagamento>();	
	
	public Parceiro(){		
	}	

	public String getNomeSite() {
		return nomeSite;
	}

	public void setNomeSite(String nomeSite) {
		this.nomeSite = nomeSite;
	}

	public String getUrlSite() {
		return urlSite;
	}

	public void setUrlSite(String urlSite) {
		this.urlSite = urlSite;
	}

	public String getTelefone() {
		return telefone;
	}

	public void setTelefone(String telefone) {
		this.telefone = telefone;
	}

	public String getCelular() {
		return celular;
	}

	public void setCelular(String celular) {
		this.celular = celular;
	}	

	public String getCnpj() {
		return cnpj;
	}

	public void setCnpj(String cnpj) {
		this.cnpj = cnpj;
	}
	
	public String getCpf() {
		return cpf;
	}

	public void setCpf(String cpf) {
		this.cpf = cpf;
	}
	
	public List<Oferta> getOfertas() {
		return ofertas;
	}

	public void setOfertas(List<Oferta> ofertas) {
		this.ofertas = ofertas;
	}
	
	public Cidade getCidade() {
		return cidade;
	}

	public void setCidade(Cidade cidade) {
		this.cidade = cidade;
	}	

	public List<Pagamento> getPagamentos() {
		return pagamentos;
	}

	public void setPagamentos(List<Pagamento> pagamentos) {
		this.pagamentos = pagamentos;
	}

	public String getUrlXML() {
		return urlXML;
	}

	public void setUrlXML(String urlXML) {
		this.urlXML = urlXML;
	}
}
